﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GUESTSMANAGEMENT.Controller
{
    public class Guests
    {
        //método que adiciona uma novo usuário
        public static void addGuests(gmguests obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                context.AddTogmguests(obj);
                context.SaveChanges();
            }
        }


        //método que atualiza um usuário
        public static void updateGuests(gmguests obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                gmguests guests = context.gmguests.Where(convidado => convidado.CDGUESTS == obj.CDGUESTS).FirstOrDefault();
                context.ApplyPropertyChanges("gmguests", obj);
                context.SaveChanges();

            }
        }

        //método que pega um usuário pelo Id
        public static gmguests getByGuests(int id)
        {
            //seta a usuário
            gmguests objGuests = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                objGuests =
                (from guests in context.gmguests
                 where guests.CDGUESTS == id
                 select guests).FirstOrDefault();
            }
            return objGuests;
        }



        //método que retorna uma lista de usuário.
        public static List<gmguests> getGridList()
        {
            //seta a variável lista            
            List<gmguests> lista = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                IQueryable<gmguests> query =
                from guests in context.gmguests
                select guests;
                lista = query.ToList();
            }
            return lista;
        }

        //Retorna os dados do usuário por Id.
        public static gmguests RetornarGuests(int id)
        {
            gmguests guests = getByGuests(id);
            return guests;
        }


        //método para deletar usuário.
        public static void deletGuests(gmguests obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                //verifica se o objeto a ser alterado existe
                gmguests guests = context.gmguests.Where(convidado => convidado.CDGUESTS == obj.CDGUESTS).FirstOrDefault();

                //caso o objeto exista, apaga o objeto
                if (guests != null)
                {
                    //apaga o objeto
                    context.DeleteObject(guests);

                    //salva as alterações
                    context.SaveChanges();
                }
            }
        }
    }
}